<?php
	// Abrimos la sesion del cliente
	session_start();
	// Comprobamos si es una peticion por POST
	if($_SERVER['REQUEST_METHOD'] == 'POST'){
		// Comprobamos si esta bien formulado el post
		if(isset($_POST['datosPostComercios'])){
			if(isset($_POST['peticionAjax'])){
				$datosPostComercios = $_POST['datosPostComercios'];
			}else{
				$datosPostComercios = json_decode($_POST['datosPostComercios'], true);
			}
			// strip_tags elimina codigo html por si lo hubiese, previene un posible ataqye de XSS (que se ejecute código
			// html en nuestro servidor enviado desde un formulario)
			$accion = strip_tags($datosPostComercios['accion']);
			$tokenCSRF = strip_tags($datosPostComercios['tokenCSRF']);
			$tipoFormulario = strip_tags($datosPostComercios['tipoFormulario']);
			$id = $_SESSION['usuario'];

			// Comprobamos la igualdad de tokens, si no son iguales es que estamos ante un ataque CSRF
			if(!isset($_SESSION[$tipoFormulario]) || $tokenCSRF !== $_SESSION[$tipoFormulario]){
				// Ataque CSRF
				throw new RuntimeException('Ataque CSRF');
			}else{
				// Listar productos
				if($accion == 'listarComercios'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$inicio = strip_tags($datosPostComercios['inicio']);
					$tamPagina = strip_tags($datosPostComercios['tamPagina']);
					$ordenacion = strip_tags($datosPostComercios['ordenacion']);
					$respuestaServidor = $dbConfiguracion -> obtenerComercios($inicio, $tamPagina, $ordenacion);
					
					echo json_encode($respuestaServidor);

				// Listar productos
				}else if($accion == 'listarIdTodosComercios'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$respuestaServidor = $dbConfiguracion -> obtenerIdTodosComercios();
					
					echo json_encode($respuestaServidor);

				// Registrar nuevo comercio
				}else if($accion == 'registrarNuevoComercio'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();

					$nombre = strip_tags($datosPostComercios['nombre']);
					$apellidos = strip_tags($datosPostComercios['apellidos']);
					$identificador = strip_tags($datosPostComercios['identificador']);
					$numLicencias = strip_tags($datosPostComercios['numLicencias']);
					$respuestaServidor = $dbConfiguracion -> registrarNuevoComercio($nombre, $apellidos, $identificador, $numLicencias);
					
					echo json_encode($respuestaServidor);
				
				// Eliminar comercio
				}else if($accion == 'eliminarComercio'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();

					// Recuperamos el identificador del producto a eliminar
					$cif = strip_tags($datosPostComercios['idComercio']);
					$respuestaServidor = $dbConfiguracion -> eliminarComercio($cif);
					
					echo json_encode($respuestaServidor);
				}

				/************************ DISPOSITIVOS *****************************/

				// Listar dispositivos
				else if($accion == 'listarDispositivos'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();

					// Recuperamos el identificador del producto a eliminar
					$idComercio = strip_tags($datosPostComercios['idComercio']);
					$ordenacion = strip_tags($datosPostComercios['ordenacion']);

					$respuestaServidor = $dbConfiguracion -> obtenerDispositivos($idComercio, $ordenacion);
					
					echo json_encode($respuestaServidor);
				
				// Eliminar dispositivo
				}else if($accion == 'eliminarDispositivo'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();

					// Recuperamos el identificador del producto a eliminar
					$idDispositivo = strip_tags($datosPostComercios['idDispositivo']);
					
					$respuestaServidor = $dbConfiguracion -> eliminarDispositivo($idDispositivo);
					
					echo json_encode($respuestaServidor);
				}

				/************************ HISTÓRICO *****************************/
				else if($accion == 'listarHistorico'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$idComercio = strip_tags($datosPostComercios['idComercio']);
					$ordenacion = strip_tags($datosPostComercios['ordenacion']);
					$respuestaServidor = $dbConfiguracion -> obtenerInformesHistorico($idComercio, $ordenacion);
					echo json_encode($respuestaServidor);
				}else if($accion == 'listarDetalleOperacion'){
					require_once('../bd/db_conectorMySQL.php');
					// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$idComercio = strip_tags($datosPostComercios['idComercio']);
					$idCabecera = strip_tags($datosPostComercios['idCabecera']);
					$idOperacion = strip_tags($datosPostComercios['idOperacion']);
					$ordenacion = strip_tags($datosPostComercios['ordenacion']);
					$respuestaServidor = $dbConfiguracion -> obtenerDetalleOperacion($idComercio, $idCabecera, $idOperacion, $ordenacion);
					echo json_encode($respuestaServidor);
				}else if($accion == 'descargarFactura'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$idComercio = strip_tags($datosPostComercios['idComercio']);
					$idCabecera = strip_tags($datosPostComercios['idCabecera']);
					if(isset($datosPostComercios['idOperacion'])){
						$idOperacion =  strip_tags($datosPostComercios['idOperacion']);
					}else{
						$idOperacion = 1;
					}
					$respuestaServidor = $dbConfiguracion -> obtenerImagenFactura($idComercio, $idCabecera, $idOperacion);
					echo json_encode($respuestaServidor);
				}else if($accion == 'descargarTicket'){
					require_once('../bd/db_conectorMySQL.php');
		    		// Conectamos la base de datos
					$dbConfiguracion = new DB_ConectorMySQL();
					$idComercio = strip_tags($datosPostComercios['idComercio']);
					$idCabecera = strip_tags($datosPostComercios['idCabecera']);
					$idOperacion =  strip_tags($datosPostComercios['idOperacion']);
					$respuestaServidor = $dbConfiguracion -> obtenerTicketOperacion($idComercio, $idCabecera, $idOperacion);
					echo json_encode($respuestaServidor);
				}
			}
		}
	}
?>